from Queue import Queue

'''
烫手山芋问题：
    问题藐视：
        有一圈人，我们指定一个数字，顺时针数，过此数字之后将山芋交给这个人，然后此人出局，依此类推接着进行。
    解决思路：
        看作队列问题，每数一个人算作是一个人出列和入列，到num数字之后，出列的元素永远出列，直到队列只剩下一个人为止
        
'''
def hotpotato(namelist,num):
    simqueue = Queue()    # 构建队列
    for name in namelist:
        simqueue.enqueue(name)
    while simqueue.size() > 1:
        for i in range(num-1):
            simqueue.enqueue(simqueue.dequeue())    # 移除第一个元素进入最后一个。这个方法很强
        print('remove: '+ simqueue.dequeue())
    return simqueue.dequeue()


if __name__ == '__main__':
    print(hotpotato(['bill','a','c','d','e'],6))